#ifndef _SCENE_HPP_
#define _SCENE_HPP_

#include <vector>

#include <boost/property_tree/ptree.hpp>
#include <boost/container/vector.hpp>

#include "primitive.hpp"
#include "light.hpp"

using boost::property_tree::ptree;

class Scene
{
public:
    std::vector< Light>       light;
    std::vector< Primitive*>  primitive;
    //////////////////////////
    void addSphere( ptree & tree);
    void addCube( ptree & tree);
    void addTriangle( ptree & tree);
    void addTor( ptree & tree);
    //////////////////////////
    Scene(){}
    ~Scene()
    {
        for ( uint i = 0; i < primitive.size(); i++)
        {
            delete primitive[ i];
        }
        primitive.clear();
    }
};

#endif // _SCENE_HPP_
